using UniversalAdmin.Domain.Entities;

namespace UniversalAdmin.Domain.Repositories;

public interface IOperationLogRepository : IRepository<OperationLog>
{
    Task<(IEnumerable<OperationLog> Logs, int TotalCount)> GetPagedAsync(int page, int pageSize, string? userId = null, string? operation = null, DateTime? startDate = null, DateTime? endDate = null);
    Task<IEnumerable<OperationLog>> GetByUserAsync(Guid userId, int page, int pageSize);
    Task<IEnumerable<OperationLog>> GetByOperationAsync(string operation, int page, int pageSize);
    Task<IEnumerable<OperationLog>> GetByDateRangeAsync(DateTime startDate, DateTime endDate, int page, int pageSize);
} 